import { FileResourcePermissionTypeEnum } from "@/enums/PublicEnum";
import { DocumentFileType } from "@/hooks/file/type";
import { IQuery } from "../types";

export interface KnowledgeBaseFileListResult {
  /** 主键ID */
  id: number;
  /** 创建人 */
  createBy: number;
  /** 创建时间 */
  createTime: string;
  /** 更新人 */
  updateBy: number;
  /** 更新时间 */
  updateTime: string;
  /** 智能体ID */
  botId: number;
  /** 用户ID */
  userId: number;
  /** 文件名称 */
  fileName: string;
  /** 文件权限类型 */
  fileAuthType: FileResourcePermissionTypeEnum;
  /** 文件UUID */
  fileUuid: string;
  /** 文件地址 */
  filePathUrl: string;
  /** 文件大小 */
  fileSize: number;
  /** 文件后缀 */
  fileSuffix: DocumentFileType;
  /** 文件ID */
  fileId: number;
}


export interface FileAuthInfo {
  id: number
  content: string
}

export interface KnowledgeBaseFileDetailResult extends KnowledgeBaseFileListResult {
  friendAvatarInfo: FileAuthInfo[]
  labelAvatarInfo: FileAuthInfo[]
  circleAvatarInfo: FileAuthInfo[]
}

export interface KnowledgeBaseFileSetting {
  id: number
  fileAuthType: FileResourcePermissionTypeEnum
  friendIds?: number[]
  labelIds?: number[]
  circleIds?: number[]
}

export interface KnowledgeBaseFileShareListData extends IQuery {
  /** shared 我共享给ta  received 我共享给ta */
  type: 'shared' | 'received'
  /** 好友ID */
  botFriendMapId?: number
}

export interface KnowledgeBaseFileShareListResult {
  id: number
  fileName: string
  filePathUrl: string
  fileSuffix: DocumentFileType
  iconFileUrl: string
  name: string
}


/**
 * 会员信息返回结果
 */
export interface MemberInfoResult {
  /** 主键ID */
  id: number;
  /** 机构名称 */
  orgName: string;
  /** 机构Logo */
  orgLogo: string;
  /** 机构租户ID */
  orgTenantId: number;
  /** 会员名称 */
  memberName: string;
  /** 是否启用 0禁用 1启用 */
  enable: 0 | 1;
  /** 机器人ID */
  botId: number;
  /** 申请类型 */
  applyType: number;
  /** 会员信息ID */
  memberInfoId: number;
  /** 会员ID */
  memberId: number;
  /** 加入时间 */
  joinTime: string;
  /** 会员结束时间 */
  memberEndTime: string;
  /** 会员状态 */
  memberState: number;
  /** 级别名称 */
  levelName: string;
} 